Image forming apparatus, method of controlling the same and storage medium

ABSTRACT

An image forming apparatus, a method of controlling it and a storage medium. The apparatus detects a level of a load on the CPU, and selects, when a communication request is received, a communication mode corresponding to the communication request from a plurality of communication modes in accordance with a level of the load on the CPU detected levels of the loads on the CPU for communication modes stored in a storage unit. The apparatus communicates with a device that issued the communication request in accordance with the selected communication mode.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to an image forming apparatus, a method ofcontrolling the same, and a storage medium.

2. Description of the Related Art

In recent years, techniques for speeding up communication in order toimprove usability are improving. Amongst conventional techniques, thereare communication devices capable of communicating by a plurality ofcommunication modes and capable of selecting a communication mode out ofthe plurality of communication modes and performing data communication.When data communication is performed using such communication devices, auser of the communication device selects, before the communication, thecommunication mode considering the transfer data size and thecommunication environment, or in accordance with the communicationperformance (see Japanese Patent Laid-Open No. 2001-57581, for example).After setting the selected communication mode on the communicationdevice, a request to receive data or a data transmission is made to acommunication destination.

Meanwhile, it is predicted that high volume data communication willincrease for image forming apparatuses, and it is thought that the abovedescribed techniques for speeding up communication will becomenecessary.

However, there are communication modes that are characterized by beingcapable of very high speed communication but putting a high load on theCPU. In a case where such a communication mode is employed, the load onthe CPU increases, and, for example, in the case of an image formingapparatus, when print processing is performed simultaneously with thecommunication, problems occur such as the print processing speeddecreasing, or the communication rate decreasing.

When an image forming apparatus is executing print processing, forexample, and another terminal transmits data to the image formingapparatus by a high speed communication mode via a network, the load forthe high speed communication is further added to the high load for printprocessing on the CPU of the image forming apparatus. For this reason,situations occur in which the print processing is unable to be completedwithin the originally expected time.

SUMMARY OF THE INVENTION

An aspect of the present invention is to eliminate the above-mentionedproblems with the conventional techniques.

A feature of the present invention is to provide a technique in whichcommunication is performed having selected a communication mode inaccordance with processing being executed on the image forming apparatuswhen a communication request is received.

According to an aspect of the present invention, there is provided animage forming apparatus capable of communicating via a network by aplurality of communication modes. The apparatus comprises a control unitconfigured to control operation of the image forming apparatus; astorage unit configured to store a level of a load on the control unitat which to apply a communication mode for each of the plurality ofcommunication modes; a detection unit configured to detect a level of aload on the control unit; a selection unit configured to select, when acommunication request is received, a communication mode from theplurality of communication modes, in accordance with the level of theload on the control unit detected by the detection unit and the levelsof the loads on the control unit at which to apply the communicationmodes stored in the storage unit; and a communication unit configured tocommunicate with a device that issued the communication request inaccordance with the communication mode selected by the selection unit.

According to another aspect of the present invention, there is providedan image forming apparatus capable of communicating via a network by aplurality of communication modes. The apparatus comprises a control unitconfigured to control operation of the image forming apparatus; astorage unit configured to store information for determining a level ofa load on the control unit at which to apply a communication mode foreach of the plurality of communication modes; a detection unitconfigured to detect a level of a load on the control unit; a selectionunit configured to select, when a communication request is received, acommunication mode from the plurality of communication modes, inaccordance with the information for determining the level of the load onthe control unit detected by the detection unit and the levels of theloads on the control unit at which to apply the communication modestored in the storage unit; and a communication unit configured tocommunicate with a device that issued the communication request inaccordance with the communication mode selected by the selection unit.

Further features of the present invention will become apparent from thefollowing description of exemplary embodiments with reference to theattached drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of the specification, illustrate embodiments of the invention and,together with the description, serve to explain the principles of theinvention.

FIG. 1 is a configuration diagram of a printing system according to anembodiment of the present invention.

FIG. 2 is a block diagram for showing a hardware configuration of animage forming apparatus according to the embodiment.

FIG. 3 is a block diagram for showing a hardware configuration of aclient computer and a file server according to the embodiment.

FIG. 4 is a block diagram for showing a software configuration of theimage forming apparatus according to the embodiment.

FIG. 5 is a view for showing an example of data of a CPU occupation rateDB according to the embodiment.

FIG. 6 is a flowchart for describing processing when the image formingapparatus receives a communication request according to the embodiment.

FIG. 7 is a flowchart for describing processing during communication instep S607 of FIG. 6.

DESCRIPTION OF THE EMBODIMENTS

Embodiments of the present invention will be described hereinafter indetail, with reference to the accompanying drawings. It is to beunderstood that the following embodiment(s) are not intended to limitthe scope of the claims of the present invention, and that not all ofthe combinations of the aspects that are described according to thefollowing embodiment(s) are necessarily required with respect to themeans to solve the problems according to the present invention.

FIG. 1 is a configuration diagram of a printing system according to anembodiment of the present invention.

In FIG. 1, an image forming apparatus 101, an image forming apparatus102, a client computer 103, and a file server 104 are connected via anetwork 106 in an intranet 10. Note, hereinafter the numeral 101 will beused to represent the image forming apparatus. The client computer 103instructs a desired image forming apparatus to print. The file server104 is capable of being accessed from the image forming apparatus 101,and the image forming apparatus 101 can make a request to the fileserver 104 for transmission of data. The file server 104 is shown as acomputer terminal, but, for example, an image forming apparatus may alsoassume the role of the file server. Note, in FIG. 1, only one intranetis shown, but it is also possible that multiple intranets having similarconfiguration to the intranet 10 exist, or that an intranet is connectedto the Internet. Also, the number of image forming apparatuses, clientcomputers and servers may be larger than shown in FIG. 1.

FIG. 2 is a block diagram for showing a hardware configuration of animage forming apparatus 101 according to the embodiment. Note,explanation of an example of a case where the image forming apparatus101 is a copying machine (multi function peripheral) is given.

A CPU 201 performs overall control of various devices connected to asystem bus 204 based on a control program stored in a program ROM of aROM 203 or in an external storage apparatus 211. Also, image signals areoutput to a printing unit (printer engine) 210 connected via a printinginterface 207, and image signals input from a scanning unit (scanner)213 connected via a scanning interface 212 are processed. Also, controlprograms executable by the CPU 201, and the like, are stored in theprogram ROM of the ROM 203. Furthermore, a font ROM of the ROM 203stores font data, and the like (including outline font data), and a dataROM of the ROM 203 stores information used by the client computer, andthe like. The CPU 201 is capable of performing communication processingwith the client computer 103 and the image forming apparatuses on thenetwork 106 via a LAN controller 206. A RAM 202 mainly functions as amain memory and a work area of the CPU 201, and is configured so thatthe memory capacity can be expanded by an option RAM being connected toan expansion port (not shown). Also, the RAM 202 is used as a loadingarea for information output to a control panel 205 or the printer engine210, or the like, or as a storage area for environment data.

Access to the external storage apparatus 211 which may be a hard disk(HDD), an IC card, or the like, is controlled by a disk controller (DKC)208. The external storage apparatus 211 stores application programs,font data, form data and the like, and is used as a job storage area totemporarily spool print jobs, and externally control spooled jobs.Furthermore, the external storage apparatus 211 is used as a BOX datastorage area that maintains, in a BOX region, image data input from thescanner 213 and print job image data as BOX data, which is referencedfrom the network 106 and printed. In the present embodiment, it isassumed that an HDD is used as the external storage apparatus 211, whichmaintains various logs such as job logs and image logs. With the controlpanel 205, the user is capable of inputting various information viasoftware keys. No limitation is put on the number of the previouslydescribed external storage apparatus 211, and configuration may be takenso that multiple external memories for storing multiple option fontcards for adding to the embedded fonts, and external memories forstoring programs to interpret printer control languages of differentlanguages can be connected. A non-volatile memory 209 stores, in anon-volatile manner, various setting information set by the user usingthe control panel 205. Furthermore, various expansion apparatuses suchas a finisher for performing functions such as stapling and sorting, anda double-sided printing apparatus for realizing a double-sided printingfunction, are optionally mountable (not shown) to the image formingapparatus 101, and operation of these is controlled by the CPU 201.

FIG. 3 is a block diagram for showing a hardware configuration of aclient computer 103 and a file server 104 according to the embodiment.

A CPU 301 controls various devices connected on a system bus 304. A ROM302 stores a BIOS, a boot program and the like. A RAM 303 is used as amain storage apparatus of the CPU 301. A keyboard controller (KBC) 305performs processing for inputting information from a pointing device 309and a keyboard 310. A display controller 306 has internal video memory,and renders to this video memory in accordance with an instruction fromthe CPU 301, and also outputs image data rendered to the video memory asa video signal to a display unit 311. A disk controller (DKC) 307controls access to a hard disk (HDD) 312 and to a floppy (registeredtrademark) disk 313. A network interface card (NIC) 308 connects to thenetwork 106 and performs information communication via the network 106.Note, an OS and various application programs that operate on the OS arestored in the HDD 312. In the above configuration, when an electricpower of the apparatus is turned on, the OS is read from the HDD 312into the RAM 303 in accordance with the boot program stored in the ROM302 of the CPU 301, and the apparatus functions as an informationprocessing apparatus such as a PC or as a server.

FIG. 4 is a block diagram for showing a software configuration of theimage forming apparatus 101 according to the embodiment. The softwareconfiguration of the image forming apparatus 101 can be largelyseparated into an application 401 that operates in user space and acommunication section 402 that performs external communication.

Firstly, explanation will be given for the application 401. Acommunication request receiving section 413 is executed by the CPU 201and determines whether or not a communication request was sent to theimage forming apparatus 101. Communication requested with thecommunication request is as follows. Firstly, this communication is forimage data to be scanned by the scanner 213 of the image formingapparatus 101 and transmitted to the client computer 103 through theintranet 10. Also, communication for receiving print data transmittedfrom the client computer 103 is included. Note, configuration may betaken so that when the image forming apparatus 101 exchanges data bycommunicating with other devices, notification is made to the CPU 201via the communication request receiving section 413 using allcommunication requests.

The communication request receiving section 413, having determined thata communication request was received, notifies a CPU occupation ratemeasurement section 412 that the communication request was received, andsends communication content in notification to a communication modecontroller 411. The CPU occupation rate measurement section 412 measuresan occupation rate of the CPU 201 in the image forming apparatus 101when notification of the communication request is received. Thiscorresponds to detecting a level of a load on the CPU 201 in the imageforming apparatus 101. A measuring method for this, is a method to, forexample, add up a usage time during which the CPU 201 is used by aprocess for a unit time, and dividing this by a total amount of time.However, the measuring method of the occupation rate of the CPU 201 isnot limited to this, and other methods may also be employed.

When the CPU occupation rate measurement section 412 finishes measuringthe occupation rate of the CPU at this point, it notifies thecommunication mode controller 411 of the measurement result. When thecommunication mode controller 411 receives the CPU occupation rate, itreferences a CPU occupation rate DB 410, and considering the current CPUoccupation rate, selects a communication mode so as not to cause the CPU201 to perform processing that will overload it. Here information storedin the CPU occupation rate DB 410 includes such things as a range of theoccupation rate of the CPU at which to apply the communication mode, anda predicted transfer rate.

FIG. 5 is a view for showing an example of data of a CPU occupation rateDB 410 according to the embodiment.

As shown in FIG. 5, in correspondence with the communication modes, apredicted transfer rate due to the communication mode, and a range ofthe occupation rate of the CPU (information for determining a level of aload on the CPU) at which the communication mode is to be applied areassociated and registered in the CPU occupation rate DB 410. Note, inthe embodiment, the CPU occupation rate DB 410 stores the range of theoccupation rate of the CPU as the information for determining the levelof the load on the CPU used when applying a communication modeassociated with the communication mode. However, the present inventionis not limited to this and, for example, CPU load information of thecommunication modes such as a predicted occupation rate for thecommunication mode may also be registered in the CPU occupation rate DB410 associated with the communication mode. In such as case, forexample, if processing having an occupation rate of the CPU of 80% isexecuting, a communication mode having CPU load information less than orequal to 20% is selected.

In the embodiment, for example, when the image forming apparatus 101 iscurrently performing print processing, and the occupation rate of theCPU 201 is exceeding 80%, the CPU 201 is in a high load state. In such acase, the CPU occupation rate DB 410 is referenced, and a search isperformed for a communication mode which is to be applied in a CPUoccupation rate range greater than or equal to 80%. For example, in theexample of FIG. 5, the communication mode that would be selected is TCPcommunication, which is to be applied in an occupation rate range of theCPU from 70% to 100%. With this, it is possible to avoid printprocessing delays due to a communication processing load.

Meanwhile, in a case where the image forming apparatus 101 is notperforming high load processing, when, for example, the image formingapparatus 101 is in an idle state and the occupation rate of the CPU 201is less than 10%, a communication mode having fast communication rate isselected. For example, in the example of FIG. 5, the communication modethat would be selected is multi-session communication (7 sessions),which is to be applied in an occupation rate range of the CPU less thanor equal to 10%.

In this way, by referencing the CPU occupation rate DB 410, acommunication mode can be selected that gives priority to thecommunication rate or gives priority to the currently executingprocessing in accordance with the occupation rate of the CPU 201.Furthermore, in a case where, for example, the occupation rate of theCPU 201 is low, communication can be performed in conformance with thecommunication request with a communication mode giving priority to thecommunication rate or with a communication mode giving priority tosecurity. Here, based on FIG. 5, explanation was given for cases inwhich the occupation rate of the CPU 201 is 80% or greater and less than10%, but the present invention is not limited to this. Configuration maybe taken to set the communication mode to use in accordance with moresmaller occupation rates of the CPU in the CPU occupation rate DB 410such as a communication mode for when the occupation rate of the CPU 201is between 30% and 40%, and a communication mode for when the occupationrate is between 50% and 70%, for when FAX is being used, for example.

In general, in the image forming apparatus, the occupation rate of theCPU 201 is high when print processing, scan processing or imageprocessing is being performed, and in such cases, while this depends onthe image forming apparatus, the occupation rate of the CPU is oftengreater than or equal to 80%.

Note, in FIG. 5, only the CPU occupation rate and the transfer rate areshown for each communication mode, but information indicating conditionsbased on the communication environment such as for when performing longdistance cloud communication and for when performing local areacommunication, for example.

Next, explanation will be given for the communication section 402. Thecommunication section 402 interprets an IP header, a TCP header, a UDPheader, or the like, and has multiple communication modes for performingpacket control of data communication between the application 401 and theexternal host. In order to avoid obstruction of currently executing highload processing as much as possible the communication modes are largelydivided into communication modes giving priority to high load processingthat prioritize high load processing being executed, and communicationmodes giving priority to the communication request that prioritize thecommunication mode requested in the communication request. Thecommunication modes giving priority to high load processing arecommunication modes that have lower loads on the CPU 201, and generallyhave slower communication rates than communication modes giving priorityto the communication rate. An example of a communication mode that givespriority to high load processing is TCP communication, which is used forgeneral communication. In TCP communication, by having a session betweena server and a client, one-to-one communication is possible. Theoccupation rate of the CPU 201 when performing communication with thiscommunication mode is often about 10% depending on the environment. Acommunication mode that gives priority to the communication request is,for example, multi-session communication, which prioritizescommunication rate, and a communication mode that gives priority tosecurity is secure communication.

Multi-session communication is a communication mode that increases thenumber of sessions of TCP communication which was given as an example ofa communication mode giving priority to high load processing. Because inthe multi-session communication, using a plurality of sessions, data isexchanged in parallel, high speed data transfer is possible. However,because information processed in parallel increases, the occupation rateof the CPU increases for the communication processing. In a case wherehigh speed communication is requested in the communication request, andin a case where the communication time will be long such as, forexample, when there is a high volume data transfer, or when thecommunication is over a long distance, a communication mode prioritizingcommunication rate is requested. Also, in multi-session communication,it is possible to dynamically change the number of sessions, and theoccupation rate of the CPU changes based on the number of sessions. Ifthe number of sessions is large, the transfer rate increases, but theoccupation rate of the CPU also increases. For this reason, informationmay be stored for each number of sessions in multi-session communicationin the CPU occupation rate DB 410. The occupation rate of the CPU inmulti-session communication is often around 80% for five sessions in alocal area network environment, for example.

Secure communication is communication, such as SSL (Secure SocketLayer), in which information is encrypted and the level of security ishigh. For encryption and decryption processing, a high load is placed onthe CPU 201, and so when secure communication is performed, theoccupation rate of the CPU necessarily increases. However, this kind ofcommunication mode is requested in cases where the content of thecommunication request requires security; for example in cases ofexchange of confidential documents or personal information. Theoccupation rate of the CPU due to secure communication using SSL, isoften about 90% in, for example, a local area network environment. Note,because the establishment of security in communication may be set tohave a higher priority than that of print processing, there are cases inwhich secure communication prioritizing security is required even duringhigh load processing.

Also, configuration may be taken so as to provide the communication modecontroller 411 with a function capable of confirming whether or not thecommunication destination terminal supports the communication modeselected based on the information in the CPU occupation rate DB 410 andcommunication is possible using the communication mode. In other words,in cases where the communication destination terminal does not supportthe selected communication mode, another communication mode is selected,and determination of whether or not the communication mode is supportedis repeated until communication with the terminal becomes possible.

Note, in the previously described embodiment, the explainedcommunication mode was given as an example, but configuration may betaken so that for the communication mode, wired communication orwireless communication units, and not just for protocols and high levelapplications, are included.

FIG. 6 is a flowchart for describing processing when the image formingapparatus 101 receives a communication request according to theembodiment. This processing may be realized by storing a program forexecuting this flowchart in the ROM 203 and by the CPU 201 reading outand executing this program. However, explanation of each processing stephere is based on the software configuration of FIG. 4.

Firstly, in step S601, when the communication request receiving section413 receives a communication request it reports to the CPU occupationrate measurement section 412 that it received the communication request.Next, the processing proceeds to step S602, and the communicationrequest receiving section 413 determines the content of thecommunication request, and determines whether or not print data isreceived from the client computer 103. In a case where print data is notreceived, the request may be a FAX transmission request or atransmission request for document data stored in the external storageapparatus 211 of the image forming apparatus 101. Also, receiving printdata may be, for example, the receiving of data used in a protocol,wherein the image forming apparatus 101 performs print processing, suchas a RAW printing protocol, simultaneously to the data being received.

In step S602, when the communication request receiving section 413determines that print data is not received, the processing proceeds tostep S603, and the CPU occupation rate measurement section 412 measuresthe current occupation rate of the CPU 201 of the image formingapparatus 101, and sends the measurement result in notification to thecommunication mode controller 411. Next, the processing proceeds to stepS604, and the communication mode controller 411 determines whether ornot the image forming apparatus 101 is executing high load processing,i.e. whether or not processing placing a high load on the CPU 201 isbeing executed. In a case where high load processing such as, forexample, print processing is being executed, the processing proceeds tostep S605. In step S605, the communication mode controller 411,referencing the CPU occupation rate DB 410, selects a communication modegiving priority to high load processing that the communicationdestination device that made the communication request can handle(support), in order to avoid obstructing the currently executing printprocessing as much as possible. After that, the communication modecontroller 411 sends content of the communication request innotification to a function (program) that executes the communicationmode giving priority to high load processing selected in step S605.Next, the processing proceeds to step S606, and the CPU 201 initiatescommunication using the selected communication mode, and then executesthe communication processing in step S607.

Meanwhile, in a case where, in step S604, the communication modecontroller 411 determines that high load processing is not beingexecuted, the processing proceeds to step S608, and the communicationmode controller 411, referencing the CPU occupation rate DB 410, selectsa communication mode giving priority to the communication request whichperforms communication in accordance with the communication request.Here, a communication mode which either gives priority to communicationrate or to security of the communication is selected in accordance withthe communication request. After this, the processing proceeds to stepS606 and communication is initiated using the selected communicationmode giving priority to the communication request. After thecommunication is initiated, the processing proceeds to step S607, andprocessing during communication is performed.

When, in step S602, it is determined that print data is received, theprocessing proceeds to step S609 and the communication mode controller411, referencing the CPU occupation rate DB 410, selects a communicationmode giving priority to high load processing that the communicationdestination device can handle (support), so as not to obstruct thecurrently executing print processing. Next, after sending content of thecommunication request to a function (program) that executes thecommunication mode, the processing proceeds to step S610, and using thecommunication mode selected in step S609, the communication isinitiated. By this, the image forming apparatus 101 is able to executethe communication processing while executing the print processingwithout reducing the printing speed.

FIG. 7 is a flowchart for describing processing during communication instep S607 of FIG. 6.

After communication initiation, firstly, in step S701, the CPUoccupation rate measurement section 412 once again acquires the currentoccupation rate of the CPU 201 in the image forming apparatus 101. Next,the processing proceeds to step S702, and the communication modecontroller 411 determines whether or not the occupation rate of the CPU201 acquired in step S701 as compared to the previously acquiredoccupation rate changes by greater than or equal to a predeterminedamount. In a case where it is determined that the occupation rate didnot change by greater than or equal to a predetermined amount from theprevious time (for example, a case where the difference was less than orequal to 10%), the processing proceeds to step S706, and the CPU 201determines whether or not communication completed. Here, when it isdetermined that communication completes, the processing returns to stepS701, and this flow loops until the communication completes.

On the other hand, in a case where, in step S702, it is determined thatthe occupation rate of the CPU 201 changes by greater than or equal to apredetermined amount as compared to the previous time (for example, acase where the occupation rate of the CPU dropped from 90% to 20%), theprocessing proceeds to step S703, and the CPU 201 determines whether ornot high load processing is being executed. The processing of step S703is similar processing to the processing of step S604 in the previouslydescribed FIG. 6, and the image forming apparatus 101 determines whetheror not high load processing is executing. Here, for example, in a casewhere the occupation rate of the CPU 201 dropped to 20% from 90% and theprocessing reached step S703, the processing proceeds to step S707, andthe communication mode is changed from one giving priority to high loadprocessing, to a communication mode giving priority to the communicationrequest (prioritizing communication rate or prioritizing security).After that, the processing proceeds to step S705, and using the changedcommunication mode, communication is initiated.

As an example, it is assumed that during data transmission and receivingby TCP communication which is a communication mode giving priority tohigh load processing for printing, the printing completed. Because theprint processing completed, the occupation rate of the CPU 201 dropsgreatly, and the communication mode is switched, by the processing ofstep S707, to multi-session communication which is a communication modegiving priority to the communication request, and communication isperformed at a high speed from the continuation from the precedingcommunication.

Also, similarly, in a case where transition was made from a low loadstate to a state in which high load processing is executed, such aswhen, during communication by multi-session communication in an idleperiod, print processing is started, in step S702 the occupation rate ofthe CPU 201 rises by greater than or equal to a predetermined amount.Then, the processing proceeds to step S703, it is determined that highload processing is executing, the processing proceeds to step S704 andcommunication is continued after changing to a communication mode givingpriority to the high load processing.

By executing the above explained processing, because control is made sothat communication processing by a high load communication mode is notexecuted when processing placing a large load on the CPU such as, forexample, print processing, and a drop in speed in the high loadprocessing that is executing (for example, print processing) due to thecommunication processing can be prevented.

Also, because, in a case where the load on the CPU is not high, becausecommunication can be performed by a communication mode that givespriority to, for example, communication rate, or gives priority tosecurity in accordance with the received communication request, there isthe effect that communication processing corresponding to thecommunication request is executed.

Furthermore, in a case where a load on the CPU drops because, forexample, print processing completes during communication, it is possibleto immediately switch to and communicate with a communication modegiving priority to communication rate or giving priority to security.For this reason, there is an effect that dynamic communication controlcan be executed in accordance with fluctuations in the load of theprocessing in the image forming apparatus.

Furthermore, in a case where the load on the CPU increases such as when,for example, print processing was initiated during communication, it ispossible to switch to and communicate with a communication mode thatprioritized the currently executing processing. For this reason, thereis an effect that dynamic communication control can be executed inaccordance with fluctuations in the load of the processing in the imageforming apparatus.

Next, a case in which print data (RAW printing protocol) is receivedfrom the client computer 103 when the image forming apparatus 101according to the present embodiment of the present invention is onwaiting, and printing is performed will be explained with reference tothe flowchart of FIG. 6. In other words, a case in which it isdetermined, in step S602, that content of the communication requestreceived in step S601 is the receipt of print data.

As explained above, in step S601, the communication request receivingsection 413 confirms receipt of the communication request, and inspectsthe content of the received communication request. Then, in step S602,the communication request receiving section 413 determines whether ornot the content of the received communication request is a receipt ofprint data. In a case where data transmitted from the client computer103 is transmitted by the RAW printing protocol, i.e. a case of a printdata receipt request, the communication request receiving section 413reports to the communication mode controller 411 performance of printdata receipt. The, the processing proceeds to step S609, and thecommunication mode controller 411 references the CPU occupation rate DB410, and selects a communication mode that will not obstruct printprocessing, that the communication destination is capable of supporting,and that prioritizes high load processing. Then, after notifying aprogram that realizes the communication mode function of the content ofthe selected communication request, the processing proceeds to stepS610, and the communication is initiated using the communication modeselected in step S609. With this, the image forming apparatus 101performs the print processing while simultaneously receiving the printdata.

In a case when print data is received, print processing is executed inparallel to communication processing, when an error does not occur. Insuch a case, because the print processing, i.e. the processing thatplaces a high load on the CPU 201, is performed in parallel to thecommunication processing, after initiating the communication of stepS610, the flow completes without the processing during communication ofstep S607 being performed. This is because the print processing does notcomplete before the communication when the print data is received. Forthis reason, transition is not made from high load processing to lowload, and the change in communication mode as in step S707 and step S704of FIG. 7 is not performed.

By the above explained present embodiment, before communicationprocessing is initiated, determination is made as to whether print datais received and simultaneously printing is performed, and in such a casecommunication processing by a communication mode prioritizing high loadprocessing is initiated. With this, there is an effect that it ispossible to prevent the load on the CPU due to the communicationprocessing causing the print processing speed to decrease.

Note, in the present embodiment, the example of the print data beingsent by the RAW printing protocol was given, but configuration may betaken so that data is received by a different printing protocol such as,for example, LPR protocol or WSD protocol.

Other Embodiments

Aspects of the present invention can also be realized by a computer of asystem or apparatus (or devices such as a CPU or MPU) that reads out andexecutes a program recorded on a memory device to perform the functionsof the above-described embodiment(s), and by a method, the steps ofwhich are performed by a computer of a system or apparatus by, forexample, reading out and executing a program recorded on a memory deviceto perform the functions of the above-described embodiment(s). For thispurpose, the program is provided to the computer for example via anetwork or from a recording medium of various types serving as thememory device (for example, computer-readable medium).

While the present invention has been described with reference toexemplary embodiments, it is to be understood that the invention is notlimited to the disclosed exemplary embodiments. The scope of thefollowing claims is to be accorded the broadest interpretation so as toencompass all such modifications and equivalent structures andfunctions.

This application claims the benefit of Japanese Patent Application No.2012-269780, filed Dec. 10, 2012, which is hereby incorporated byreference herein in its entirety.

What is claimed is:
 1. An image forming apparatus capable ofcommunicating via a network by a plurality of communication modes, theapparatus comprising: a control unit configured to control operation ofthe image forming apparatus; a storage unit configured to store a levelof a load on the control unit at which to apply a communication mode foreach of the plurality of communication modes; a detection unitconfigured to detect a level of a load on the control unit; a selectionunit configured to select, when a communication request is received, acommunication mode from the plurality of communication modes, inaccordance with the level of the load on the control unit detected bythe detection unit and the levels of the loads on the control unit atwhich to apply the communication modes stored in the storage unit; and acommunication unit configured to communicate with a device that issuedthe communication request in accordance with the communication modeselected by the selection unit.
 2. The image forming apparatus accordingto claim 1, wherein the control unit has a CPU, and the level of theload on the control unit indicates an occupation rate of the CPU.
 3. Theimage forming apparatus according to claim 1, wherein the selection unitis further configured to select a communication mode for which the levelof the load on the control unit upon application of the communicationmode is less than or equal to a predetermined amount in a case where thelevel of the load on the control unit detected by the detection unit isgreater than a predetermined amount.
 4. The image forming apparatusaccording to claim 1, wherein the selection unit is further configuredto select a communication mode corresponding to the communicationrequest in a case where the level of the load on the control unitdetected by the detection unit is less than a predetermined amount. 5.The image forming apparatus according to claim 1, wherein the selectionunit is further configured to select, in a case where the communicationrequest is a request to receive print data accompanying printprocessing, a communication mode for which the level of the load on thecontrol unit upon application stored in the storage unit is less than orequal to a predetermined amount in order to give priority to the printprocessing.
 6. The image forming apparatus according to claim 1, furthercomprising a changing unit configured to change to a communication modefor which the level of the load on the control unit upon applicationstored in the storage unit is less than or equal to a predeterminedamount when the level of the load on the control unit detected by thedetection unit increases, during communication, to become greater thanor equal to a predetermined amount.
 7. The image forming apparatusaccording to claim 1, further comprising a changing unit configured tochange to a communication mode corresponding to the communicationrequest when the level of the load on the control unit detected by thedetection unit decreases to become less than a predetermined amount. 8.The image forming apparatus according to claim 2, wherein the detectionunit is further configured to detect the level of the load on thecontrol unit by adding up an amount of time during which the CPU is usedfor a unit time, and dividing the added up amount of time by a totalamount of time.
 9. The image forming apparatus according to claim 1,wherein the selection unit is further configured to determine whether ornot a device that made the communication request supports thecommunication mode, and configured to select a communication modecorresponding to the communication request based on a result of thedetermination.
 10. An image forming apparatus capable of communicatingvia a network by a plurality of communication modes, the apparatuscomprising: a control unit configured to control operation of the imageforming apparatus; a storage unit configured to store information fordetermining a level of a load on the control unit at which to apply acommunication mode for each of the plurality of communication modes; adetection unit configured to detect a level of a load on the controlunit; a selection unit configured to select, when a communicationrequest is received, a communication mode from the plurality ofcommunication modes, in accordance with the information for determiningthe level of the load on the control unit detected by the detection unitand the levels of the loads on the control unit at which to apply thecommunication mode stored in the storage unit; and a communication unitconfigured to communicate with a device that issued the communicationrequest in accordance with the communication mode selected by theselection unit.
 11. A method of controlling an image forming apparatushaving a CPU and a storage unit for storing a level of a load on the CPUupon application of a communication mode for each of a plurality ofcommunication modes, and capable of communicating via a network by theplurality of communication modes, the method comprising: detecting alevel of a load on the CPU; selecting, when a communication request isreceived, a communication mode corresponding to the communicationrequest from the plurality of communication modes in accordance with thelevel of the load on the CPU detected in the detecting and the levels ofthe loads on the CPU for the communication modes stored in the storageunit; and communicating with a device that issued the communicationrequest in accordance with the communication mode selected in theselecting.
 12. A non-transitory computer-readable storage medium storinga program for causing a computer to function as the image formingapparatus according to claim 1.